home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / tbl_query_box.php < prev    next >
PHP Script  |  2005-03-07  |  30KB  |  558 lines

  1. <?php
  2. /* $Id: tbl_query_box.php,v 2.32 2005/03/07 21:30:57 lem9 Exp $ */
  3. // vim: expandtab sw=4 ts=4 sts=4:
  4.  
  5. // Check parameters
  6.  
  7. require_once('./libraries/common.lib.php');
  8. require_once('./libraries/bookmark.lib.php');
  9.  
  10. $upload_dir_error='';
  11.  
  12. // I don't see the purpose of the first 2 conditions
  13. //if (!($cfg['QueryFrame'] && $cfg['QueryFrameJS'] && isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full'))) {
  14.  
  15. if (!(isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full'))) {
  16.     PMA_checkParameters(array('db','table','url_query'));
  17. }
  18.  
  19. /**
  20.  * Defines the query to be displayed in the query textarea
  21.  */
  22. if (isset($show_query) && $show_query == '1') {
  23.     // This script has been called by read_dump.php
  24.     if (isset($sql_query_cpy)) {
  25.         $query_to_display = $sql_query_cpy;
  26.     }
  27.     // Other cases
  28.     else {
  29.         $query_to_display = $sql_query;
  30.     }
  31. } else {
  32.     $query_to_display     = '';
  33. }
  34. unset($sql_query);
  35.  
  36. /**
  37.  * Get the list and number of fields
  38.  */
  39. $fields_cnt = 0;
  40. if (isset($db) && isset($table) && $table != '' && $db != '') {
  41.     // we do a try_query here, because we could be in the query window,
  42.     // trying to synchonize and the table has not yet been created
  43.     $result = PMA_DBI_try_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ' FROM ' . PMA_backquote($db) . ';', NULL, PMA_DBI_QUERY_STORE);
  44.     if ($result) {
  45.         $fields_cnt = PMA_DBI_num_rows($result);
  46.         while ($row = PMA_DBI_fetch_assoc($result)) {
  47.             $fields_list[] = $row['Field'];
  48.         } // end while
  49.         PMA_DBI_free_result($result);
  50.     } // end if
  51. }
  52.  
  53. /**
  54.  * Work on the table
  55.  */
  56.  
  57. if ($cfg['QueryFrame'] && $cfg['QueryFrameJS'] && isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full')) {
  58.     $locking   = 'onkeypress="document.sqlform.elements[\'LockFromUpdate\'].checked = true;"';
  59. } else {
  60.     $locking   = '';
  61. }
  62.  
  63. $auto_sel  = ($cfg['TextareaAutoSelect']
  64.                // 2003-02-05 rabus: This causes big trouble with Opera 7 for
  65.                // Windows, so let's disable it there...
  66.                && !(PMA_USR_OS == 'Win' && PMA_USR_BROWSER_AGENT == 'OPERA' && PMA_USR_BROWSER_VER >= 7))
  67.            ? "\n" . '             onfocus="if (typeof(document.layers) == \'undefined\' || typeof(textarea_selected) == \'undefined\') {textarea_selected = 1; document.sqlform.elements[\'sql_query\'].select();}"'
  68.            : '';
  69. $auto_sel .= ' ' . $locking;
  70.  
  71. // garvin: If non-JS query window is embedded, display a list of databases to choose from.
  72. //         Apart from that, a non-js query window sucks badly.
  73. /**
  74.   * Get the list and number of available databases.
  75.   */
  76. if ($server > 0) {
  77.     PMA_availableDatabases(); // this function is defined in "common.lib.php"
  78. } else {
  79.     $num_dbs = 0;
  80. }
  81. if ($cfg['QueryFrame'] && (!$cfg['QueryFrameJS'] && !$db || ($cfg['QueryFrameJS'] && !$db))) {
  82.     if ($num_dbs > 0) {
  83.         $queryframe_db_list = '<select size=1 name="db" style="vertical-align: middle;">';
  84.         for ($i = 0; $i < $num_dbs; $i++) {
  85.             $t_db = $dblist[$i];
  86.             $queryframe_db_list .= '<option value="' . htmlspecialchars($t_db) . '">' . htmlspecialchars($t_db) . '</option>';
  87.         }
  88.         $queryframe_db_list .= '</select> ';
  89.         $queryframe_thcolspan = ' colspan="2"';
  90.         $queryframe_tdcolspan = '';
  91.     } else {
  92.         $queryframe_db_list = '';
  93.         $queryframe_thcolspan = ' colspan="3"';
  94.         $queryframe_tdcolspan = ' colspan="2"';
  95.     }
  96. } else {
  97.     $queryframe_db_list = '';
  98.     if ($num_dbs > 0) {
  99.         $queryframe_thcolspan = ' colspan="3"';
  100.         $queryframe_tdcolspan = ' colspan="2"';
  101.     } else {
  102.         $queryframe_thcolspan = ' colspan="2"';
  103.         $queryframe_tdcolspan = '';
  104.     }
  105. }
  106. $form_items = 0;
  107. // ($is_upload defined in common.lib.php)
  108.  
  109. if ($cfg['QueryFrame'] && $cfg['QueryFrameJS'] && isset($is_inside_querywindow) && $is_inside_querywindow) {
  110. ?>
  111.         <script type="text/javascript">
  112.         <!--
  113.         document.writeln('<form method="post" target="phpmain' +  <?php echo ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) ? 'opener.' : '');?>parent.frames.queryframe.document.hashform.hash.value + '" action="read_dump.php"<?php if ($is_upload) echo ' enctype="multipart/form-data"'; ?> onsubmit="return checkSqlQuery(this)" name="sqlform">');
  114.         //-->
  115.         </script>
  116. <?php
  117.     echo '        <noscript>' . "\n"
  118.        . '        <form method="post" target="phpmain' . md5($cfg['PmaAbsoluteUri']) . '" ' . "\n"
  119.        . '            action="read_dump.php"' . ($is_upload ? ' enctype="multipart/form-data"' : '' ) . ' name="sqlform">' . "\n"
  120.        . '        </noscript>';
  121. } else {
  122. ?>
  123.         <form method="post" action="read_dump.php"<?php if ($is_upload) echo ' enctype="multipart/form-data"'; ?> onsubmit="return checkSqlQuery(this)" name="sqlform" style="padding: 0px; magin: 0px;">
  124. <?php
  125. }
  126. ?>
  127.             <table border="0" cellpadding="2" cellspacing="0" id="sqlcontainer" name="sqlcontainer">
  128. <?php
  129. // for better administration
  130. $querybox_hidden_fields = '                    <input type="hidden" name="is_js_confirmed" value="0" />' . "\n"
  131.                             . '                    ' . PMA_generate_common_hidden_inputs($db, $table) . "\n"
  132.                             . '                    <input type="hidden" name="pos" value="0" />'. "\n"
  133.                             . '                    <input type="hidden" name="goto" value="' . $goto . '" />'. "\n"
  134.                             . '                    <input type="hidden" name="zero_rows" value="' . $strSuccess . '" />'. "\n"
  135.                             . '                    <input type="hidden" name="prev_sql_query" value="' . ((!empty($query_to_display)) ? urlencode($query_to_display) : '') . '" />'. "\n";
  136. if (!isset($is_inside_querywindow) ||
  137.     (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full'))) {
  138. ?>
  139.     <!-- Query box and bookmark support -->
  140. <?php
  141.     if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
  142.         $querybox_hidden_fields .= '                    <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
  143.     }
  144. ?>
  145.             <tr class="tblHeaders">
  146.                 <td nowrap="nowrap"<?php if ($queryframe_tdcolspan == '') { echo ' colspan="2"'; } ?>>
  147.                     <a name="querybox"></a>
  148.                     <?php echo sprintf($strRunSQLQuery,  htmlspecialchars($db) . $queryframe_db_list) . PMA_showMySQLDocu('Reference', 'SELECT'); ?>
  149.                 </td>
  150.                 <?php
  151.     if (isset($table) && $fields_cnt > 0) { ?>
  152.                 <td nowrap="nowrap">   </td>
  153.                 <td nowrap="nowrap"><?php echo $strFields; ?>: </td>
  154.                 <?php
  155.     }
  156.                 ?>
  157.             </tr>
  158.             <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  159.                 <td valign="top"<?php if ($queryframe_tdcolspan == '') { echo ' colspan="2"'; } ?>>
  160.                     <textarea name="sql_query" rows="<?php echo $cfg['TextareaRows']; ?>" cols="<?php echo ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && $queryframe_tdcolspan != '') ? ceil($cfg['TextareaCols'] * 1.25) : $cfg['TextareaCols'] * 2); ?>" dir="<?php echo $text_dir; ?>"<?php echo $auto_sel; ?>><?php
  161.     if (!empty($query_to_display)) {
  162.         echo htmlspecialchars($query_to_display);
  163.     } elseif (isset($table) && !empty($table) && isset($fields_list)) {
  164.         echo htmlspecialchars(
  165.             str_replace('%d', PMA_backquote($db),
  166.                 str_replace('%t', PMA_backquote($table),
  167.                     str_replace('%f', implode(', ', PMA_backquote($fields_list)),
  168.                         $cfg['DefaultQueryTable']))));
  169.     } else {
  170.         echo htmlspecialchars(str_replace('%d', PMA_backquote($db), $cfg['DefaultQueryDatabase']));
  171.     }
  172. ?></textarea>
  173.                 </td>
  174. <?php
  175.     if (isset($table) && $fields_cnt > 0) {
  176. ?>
  177.                 <td valign="middle">
  178.                     <?php
  179.         if ($cfg['PropertiesIconic']) {
  180.             echo '<input type="button" name="insert" value="<<" onclick="insertValueQuery()" title="' . $strInsert. '" />';
  181.         } else {
  182.             echo '<input type="button" name="insert" value="' . $strInsert . '" onclick="insertValueQuery()" />';
  183.         }
  184.                 ?>
  185.                 </td>
  186.                 <td valign="top">
  187.                     <select name="dummy" size="<?php echo $cfg['TextareaRows']; ?>" multiple="multiple" class="textfield">
  188. <?php
  189.         echo "\n";
  190.         for ($i = 0 ; $i < $fields_cnt; $i++) {
  191.             echo '                        '
  192.                . '<option value="' . PMA_backquote(htmlspecialchars($fields_list[$i])) . '">' . htmlspecialchars($fields_list[$i]) . '</option>' . "\n";
  193.         }
  194. ?>
  195.                     </select>
  196.                 </td>
  197. <?php
  198.     }
  199. ?>
  200.             </tr>
  201.             <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  202.                 <td<?php if ($queryframe_tdcolspan != '') { echo ' colspan="2"'; } //echo $queryframe_tdcolspan; ?>>
  203.                     <input type="checkbox" name="show_query" value="1" id="checkbox_show_query" checked="checked" /><label for="checkbox_show_query"><?php echo $strShowThisQuery; ?></label>
  204. <?php
  205.             if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
  206.             ?>
  207.             <br />
  208.             <script type="text/javascript">
  209.                 document.writeln('<input type="checkbox" name="LockFromUpdate" value="1" id="checkbox_lock" /><label for="checkbox_lock"><?php echo $strQueryWindowLock; ?></label><br />');
  210.             </script>
  211.             <?php
  212.             }
  213.  
  214.             $form_items++;
  215.             ?>
  216.                 </td>
  217.                 <td align="right" valign="bottom"><input type="submit" name="SQL" value="<?php echo $strGo; ?>" /></td>
  218.             </tr>
  219. <?php
  220. } else {
  221.     $querybox_hidden_fields .= '                    <input type="hidden" name="sql_query" value="" />' . "\n";
  222.     $querybox_hidden_fields .= '                    <input type="hidden" name="show_query" value="1" />' . "\n";
  223. }
  224.  
  225. // loic1: displays import dump feature only if file upload available
  226. if ($is_upload && (!isset($is_inside_querywindow) ||
  227.     (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full')))) {
  228.     $form_items++;
  229. ?>
  230.             <tr>
  231.                 <td<?php echo $queryframe_thcolspan; ?>><img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" width="1" height="1" border="0" alt="" /></td>
  232.             </tr>
  233.             <tr>
  234.                 <td class="tblHeaders"<?php echo $queryframe_thcolspan; ?>>
  235. <?php
  236.     echo '            '
  237.        . ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && $querydisplay_tab == 'full') || !isset($is_inside_querywindow) ? '<i>' . $strOr . '</i>' : '')
  238.        . ' ' . $strLocationTextfile . ': ' . "\n";
  239. ?>
  240.                 </td>
  241.             </tr>
  242.             <tr bgcolor="<?php echo $cfg['BgcolorTwo']; ?>">
  243.                 <td<?php echo $queryframe_thcolspan; ?>>
  244.                     <b> <?php echo $strLocationTextfile; ?>: </b>
  245.                 </td>
  246.             </tr>
  247.             <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  248.                 <td<?php echo $queryframe_thcolspan; ?>>
  249.                       <input type="file" name="sql_file" class="textfield" /> <?php echo PMA_displayMaximumUploadSize($max_upload_size);?><br />
  250. <?php
  251.     // some browsers should respect this :)
  252.     echo '        ' . PMA_generateHiddenMaxFileSize($max_upload_size) . "\n";
  253.  
  254.     if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
  255.         $querybox_hidden_fields .= '                    <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
  256.     }
  257.  
  258.     $is_gzip = ($cfg['GZipDump'] && @function_exists('gzopen'));
  259.     $is_bzip = ($cfg['BZipDump'] && @function_exists('bzdecompress'));
  260.     if ($is_bzip || $is_gzip) {
  261.         echo '                </td>' . "\n"
  262.            . '            </tr>' . "\n"
  263.            . '            <tr bgcolor="' . $cfg['BgcolorOne'] .'">' . "\n"
  264.            . '                <td' . $queryframe_thcolspan . '>' . "\n"
  265.            . '                      '. $strCompression . ':<br />  ' . "\n"
  266.            . '                      <input type="radio" id="radio_sql_file_compression_auto" name="sql_file_compression" value="" checked="checked" />'
  267.            . '<label for="radio_sql_file_compression_auto">' . $strAutodetect . '</label>  ' . "\n"
  268.            . '                    <input type="radio" id="radio_sql_file_compression_plain" name="sql_file_compression" value="text/plain" />'
  269.            . '<label for="radio_sql_file_compression_plain">' . $strNone . '</label>  ' . "\n";
  270.         if ($is_gzip) {
  271.             echo '                    <input type="radio" id="radio_sql_file_compression_gzip" name="sql_file_compression" value="application/x-gzip" />'
  272.                . '<label for="radio_sql_file_compression_gzip">' . $strGzip . '</label>  ' . "\n";
  273.         }
  274.         if ($is_bzip) {
  275.             echo '                    <input type="radio" id="radio_sql_file_compression_bzip" name="sql_file_compression" value="application/x-bzip" />'
  276.                . '<label for="radio_sql_file_compression_bzip">' . $strBzip . '</label>  ' . "\n";
  277.         }
  278.     } else {
  279.         $querybox_hidden_fields .= '                    <input type="hidden" name="sql_file_compression" value="text/plain" />' . "\n";
  280.     }
  281.     ?>
  282.                 </td>
  283.             </tr>
  284.     <?php
  285. } // end if
  286. echo "\n";
  287.  
  288. // web-server upload directory
  289. $is_upload_dir = false;
  290. if (!empty($cfg['UploadDir']) && !isset($is_inside_querywindow) ||
  291.     (!empty($cfg['UploadDir']) && isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full'))) {
  292.  
  293.     if (substr($cfg['UploadDir'], -1) != '/') {
  294.         $cfg['UploadDir'] .= '/';
  295.     }
  296.     if ($handle = @opendir($cfg['UploadDir'])) {
  297.         if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
  298.             $querybox_hidden_fields .= '            <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
  299.         }
  300.  
  301.         $is_first = 0;
  302.         while ($file = @readdir($handle)) {
  303.             if (is_file($cfg['UploadDir'] . $file) && PMA_checkFileExtensions($file, '.sql')) {
  304.                 if ($is_first == 0) {
  305.                     $is_upload_dir = true;
  306.                     echo "\n";
  307.                     echo '    ' . "\n"
  308.                        . '        <tr bgcolor="' .$cfg['BgcolorTwo'].'"><td' . $queryframe_thcolspan . '>';
  309.                     echo '        <b> ' . $strWebServerUploadDirectory . ': </b>' . "\n";
  310.                     echo '       </td></tr>' . "\n"
  311.                        . '       <tr bgcolor="' . $cfg['BgcolorOne'] . '"><td' . $queryframe_thcolspan . '>';
  312.                     // add 2004-05-08 by mkkeck
  313.                     // todo: building a php script for indexing files in UploadDir
  314.                     //if ($cfg['UploadDirIndex']) {
  315.                     //    echo '  <a href="' . $cfg['UploadDir'] . '" target="_blank">' . $cfg['UploadDir'] . '</a> ';
  316.                     //}
  317.                     // end indexing
  318.                     echo '          <select size="1" name="sql_localfile">' . "\n";
  319.                     echo '            <option value="" selected="selected"></option>' . "\n";
  320.                     $form_items++;
  321.                 } // end if (is_first)
  322.                 echo '            <option value="' . htmlspecialchars($file) . '">' . htmlspecialchars($file) . '</option>' . "\n";
  323.                 $is_first++;
  324.             } // end if (is_file)
  325.         } // end while
  326.         if ($is_first > 0) {
  327.             echo '        </select>' . "\n"
  328.                . '        </td></tr>' . "\n";
  329.         } // end if (isfirst > 0)
  330.         @closedir($handle);
  331.         $upload_dir_error=''; // please see 'else {' below ;)
  332.     }
  333.     else {
  334.         // modified by mkkeck 2004-05-08
  335.         //   showing UploadDir Error at the end of all option for SQL-Queries
  336.         $upload_dir_error.= '        <tr><td' . $queryframe_thcolspan . '><img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n"
  337.                           . '        <tr>' . "\n"
  338.                           . '            <th' . $queryframe_thcolspan . ' class="tblHeadError"><div class="errorhead">' . $strError . '</div></th>' . "\n"
  339.                           . '        </tr>' . "\n"
  340.                           . '        <tr>' . "\n"
  341.                           . '            <td' . $queryframe_thcolspan . ' class="tblError">' . wordwrap($strWebServerUploadDirectoryError,80,'<br /> ') . '</td>' . "\n"
  342.                           . '        </tr>' . "\n"
  343.                           . '        <tr><td' . $queryframe_thcolspan . '><img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n";
  344.     }
  345. } // end if (web-server upload directory)
  346. echo "\n";
  347.  
  348. // Encoding setting form appended by Y.Kawada
  349. if (function_exists('PMA_set_enc_form')) {
  350.     echo PMA_set_enc_form('            ');
  351.     $form_items++;
  352. }
  353.  
  354. // Charset conversion options and submit button
  355. if (($is_upload || $is_upload_dir) &&
  356.         (!isset($is_inside_querywindow) ||
  357.          (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full')))
  358.         // It's possible that $db is empty: no db was selected on the left
  359.         // panel and the user wants to execute a .sql file to create one)
  360.         // && isset($db) && $db != ''){
  361.         ){
  362. /*
  363.     if ($cfg['AllowAnywhereRecoding'] && $allow_recoding) {
  364.         $form_items++;
  365.         echo '    <div style="margin-bottom: 5px">' . "\n";
  366.         $temp_charset = reset($cfg['AvailableCharsets']);
  367.         echo $strCharsetOfFile . "\n"
  368.              . '    <select name="charset_of_file" size="1">' . "\n"
  369.              . '            <option value="' . $temp_charset . '"';
  370.         if ($temp_charset == $charset) {
  371.             echo ' selected="selected"';
  372.         }
  373.         echo '>' . $temp_charset . '</option>' . "\n";
  374.         while ($temp_charset = next($cfg['AvailableCharsets'])) {
  375.             echo '            <option value="' . $temp_charset . '"';
  376.             if ($temp_charset == $charset) {
  377.                 echo ' selected="selected"';
  378.             }
  379.             echo '>' . $temp_charset . '</option>' . "\n";
  380.         }
  381.         echo '        </select><br />' . "\n" . '    ';
  382.         echo '    </div>' . "\n";
  383.     } // end if (recoding)
  384. */
  385.    if (PMA_MYSQL_INT_VERSION < 40100 && $cfg['AllowAnywhereRecoding'] && $allow_recoding) {
  386.         echo '    <tr bgcolor="' .$cfg['BgcolorTwo'] . '"><td' . $queryframe_thcolspan . '>' . "\n";
  387.         $temp_charset = reset($cfg['AvailableCharsets']);
  388.         echo ' ' . $strCharsetOfFile
  389.              . ' <select name="charset_of_file" size="1">' . "\n"
  390.              . '            <option value="' . $temp_charset . '"';
  391.         if ($temp_charset == $charset) {
  392.             echo ' selected="selected"';
  393.         }
  394.         echo '>' . $temp_charset . '</option>' . "\n";
  395.         while ($temp_charset = next($cfg['AvailableCharsets'])) {
  396.             echo '            <option value="' . $temp_charset . '"';
  397.             if ($temp_charset == $charset) {
  398.                 echo ' selected="selected"';
  399.             }
  400.             echo '>' . $temp_charset . '</option>' . "\n";
  401.         }
  402.         echo '        </select>' . "\n" . '    ';
  403.         echo '    </td>' . "\n";
  404.         echo '    </tr>' . "\n";
  405.     } // end if (recoding)
  406.     else if (PMA_MYSQL_INT_VERSION >= 40100) {
  407.         echo '    <tr bgcolor="' .$cfg['BgcolorTwo'] . '"><td' . $queryframe_thcolspan . '>' . "\n"
  408.            . $strCharsetOfFile . "\n"
  409.            . PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', NULL, 'utf8', FALSE)
  410.            . '    </td>' . "\n"
  411.            . '    </tr>' . "\n";
  412.     }
  413.     echo '    <tr bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  414.        . '        <td align="right"' . $queryframe_thcolspan . '><input type="submit" name="SQL" value="' . $strGo . '" /></td>' . "\n"
  415.        . '    </tr>' . "\n\n";
  416. }
  417.  
  418. // Bookmark Support
  419. $bookmark_go = FALSE;
  420. if (!isset($is_inside_querywindow) ||
  421.     (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'history' || $querydisplay_tab == 'full'))) {
  422.     if ($cfg['Bookmark']['db'] && $cfg['Bookmark']['table']) {
  423.         if (($bookmark_list = PMA_listBookmarks($db, $cfg['Bookmark'])) && count($bookmark_list) > 0) {
  424.             $form_items++;
  425.             echo '    <tr><td' . $queryframe_thcolspan . '><img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n";
  426.             echo '    <tr><td' . $queryframe_thcolspan . ' class="tblHeaders">' . "\n";
  427.             echo "            " . ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && $querydisplay_tab == 'full') || !isset($is_inside_querywindow) ? "<i>$strOr</i>" : '') . " $strBookmarkQuery: \n";
  428.             echo '    </td></tr>' . "\n";
  429.             if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
  430.                 $querybox_hidden_fields .= '            <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
  431.             }
  432.  
  433.             echo '    <tr bgcolor="' .$cfg['BgcolorOne'] . '"><td' . $queryframe_tdcolspan . '>' . "\n";
  434.             echo '            <select name="id_bookmark" style="vertical-align: middle">' . "\n";
  435.             echo '                <option value=""></option>' . "\n";
  436.             foreach($bookmark_list AS $key => $value) {
  437.                 echo '                <option value="' . htmlspecialchars($key) . '">' . htmlspecialchars($value) . '</option>' . "\n";
  438.             }
  439.             echo '            </select>' . "   \n";
  440.             echo '            ' . $strVar;
  441.             echo '            ' . $cfg['ReplaceHelpImg'] ? '<a href="./Documentation.html#faqbookmark" target="documentation"><img src="' . $pmaThemeImage . 'b_help.png" width="11" height="11" align="middle" alt="' . $strDocu . '" hspace="2" border="0" /></a>' : '(<a href="./Documentation.html#faqbookmark" target="documentation">' . $strDocu . '</a>)';
  442.             echo ': <input type="text" name="bookmark_variable" class="textfield" size="10" style="vertical-align: middle" /><br />' . "\n";
  443.             echo '            <input type="radio" name="action_bookmark" value="0" id="radio_bookmark0" checked="checked" style="vertical-align: middle" /><label for="radio_bookmark0">' . $strSubmit . '</label>' . "\n";
  444.             echo '             <input type="radio" name="action_bookmark" value="1" id="radio_bookmark1" style="vertical-align: middle" /><label for="radio_bookmark1">' . $strBookmarkView . '</label>' . "\n";
  445.             echo '             <input type="radio" name="action_bookmark" value="2" id="radio_bookmark2" style="vertical-align: middle" /><label for="radio_bookmark2">' . $strDelete . '</label>' . "\n";
  446.             echo '            <br />' . "\n";
  447.             echo '            </td>' . "\n";
  448.             echo '    <td valign="bottom" align="right">' . "\n";
  449.             echo '        <input type="submit" name="SQL" value="' . $strGo . '" />';
  450.             echo '    </td></tr>' . "\n";
  451.             $bookmark_go = TRUE;
  452.         }
  453.     }
  454. }
  455.  
  456. if (!isset($is_inside_querywindow) || (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && (($querydisplay_tab == 'files') || $querydisplay_tab == 'sql' || $querydisplay_tab == 'full' || ($querydisplay_tab == 'history' && $bookmark_go)))) {
  457.     if ($form_items > 0) {
  458.         if ( $cfg['Bookmark']['db']
  459.           && $cfg['Bookmark']['table']
  460.           && (!isset($is_inside_querywindow)
  461.             || (  isset($is_inside_querywindow)
  462.                && $is_inside_querywindow == TRUE
  463.                && isset($querydisplay_tab)
  464.                //&& $querydisplay_tab != 'history'))) {
  465.                && $querydisplay_tab == 'sql'))) {
  466. ?>
  467.                 <tr><td<?php echo $queryframe_thcolspan; ?>><img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" border="0" width="1" height="1" alt="" /></td></tr>
  468.                 <tr><th<?php echo $queryframe_thcolspan; ?> align="left"><?php echo $strBookmarkThis; ?>:</th></tr>
  469.                 <tr bgcolor="<?php echo $cfg['BgcolorTwo']; ?>">
  470.                     <td<?php echo $queryframe_thcolspan; ?>>
  471.                         <b><?php echo $strBookmarkOptions; ?>:</b>
  472.                     </td>
  473.                 </tr>
  474.                 <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  475.                     <td<?php echo $queryframe_thcolspan; ?>>
  476.                          <?php echo $strBookmarkLabel; ?>: <input type="text" name="bkm_label" value="" /><br />
  477.                          <input type="checkbox" name="bkm_all_users" id="id_bkm_all_users" value="true" /><label for="id_bkm_all_users"><?php echo $strBookmarkAllUsers; ?></label>
  478.                     </td>
  479.                 </tr>
  480.                 <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  481.                     <td align="right"<?php echo $queryframe_thcolspan; ?>>
  482.                         <input type="submit" name="SQLbookmark" value="<?php echo $strGo . ' & ' . $strBookmarkThis; ?>" onclick="if(document.forms['sqlform'].elements['bkm_label'].value==''){ alert('<?php echo addslashes($strInsertBookmarkTitle); ?>');forms['sqlform'].elements['bkm_label'].focus();return false; }"/>
  483.                     </td>
  484.                 </tr>
  485. <?php
  486.         }
  487.       } else {
  488.             echo '                <tr><td' . $queryframe_thcolspan . '>' . "\n";
  489.             // TODO: Add a more complete warning that no items (like for file import) where found.
  490.             //       (After 2.5.2 release!)
  491.             echo $strWebServerUploadDirectoryError;
  492.             echo '                </td></tr>' . "\n";
  493.       }
  494. }
  495. echo '                <tr><td' . $queryframe_thcolspan . ' height="1">' . "\n";
  496. echo $querybox_hidden_fields;
  497. echo '                </td></tr>';
  498. if ($upload_dir_error!='') {
  499.     echo $upload_dir_error;
  500. }
  501. ?>
  502.             </table>
  503.         </form>
  504.  
  505. <?php
  506. //if (!isset($is_inside_querywindow) || !$is_inside_querywindow) echo "</li>\n";
  507. if (!isset($is_inside_querywindow) ||
  508.     (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full')) && isset($db) && $db != '') {
  509.  
  510.     // loic1: displays import dump feature only if file upload available
  511.     $ldi_target = 'ldi_table.php?' . $url_query . (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? '&focus_querywindow=true' : '');
  512.  
  513.     if ($is_upload && isset($db) && isset($table)) {
  514.         //if (!isset($is_inside_querywindow) || !$is_inside_querywindow) echo "<li>\n";
  515.         if ($cfg['PropertiesIconic']) {
  516.             $imgInsertTextfiles = '<img src="' . $pmaThemeImage. 'b_tblimport.png" '
  517.                                 . 'width="16" height="16" hspace="2" border="0" align="middle" alt="' . $strInsertTextfiles. '" />';
  518.         }else{
  519.             $imgInsertTextfiles = '';
  520.         }
  521.         ?>
  522.         <!-- Insert a text file -->
  523.             <?php
  524.             if ($cfg['QueryFrame'] && $cfg['QueryFrameJS']) {
  525.             ?>
  526.  
  527.             <script type="text/javascript">
  528.                 <!--
  529.                 document.writeln('<a href="<?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? '#' : $ldi_target); ?>" <?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? 'onclick="opener.parent.frames.phpmain\' + opener.parent.frames.queryframe.document.hashform.hash.value + \'.location.href = \\\'' . $ldi_target . '\\\'; return false;"' : ''); ?>><?php echo addslashes($imgInsertTextfiles . $strInsertTextfiles); ?></a>');
  530.                 //-->
  531.             </script>
  532.  
  533.             <?php
  534.             } else {
  535.             ?>
  536.  
  537.             <script type="text/javascript">
  538.                 <!--
  539.                 document.writeln('<a href="<?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? '#' : $ldi_target); ?>" <?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? 'onclick="opener.parent.frames.phpmain' . md5($cfg['PmaAbsoluteUri']) . '.location.href = \\\'' . $ldi_target . '\\\'; return false;"' : ''); ?>><?php echo addslashes($imgInsertTextfiles . $strInsertTextfiles); ?></a>');
  540.                 //-->
  541.             </script>
  542.  
  543.             <?php
  544.             }
  545.             ?>
  546.  
  547.             <noscript>
  548.                <a href="<?php echo $ldi_target; ?>"><?php
  549.                   echo $imgInsertTextfiles . $strInsertTextfiles;
  550.                ?></a>
  551.             </noscript>
  552.         <?php
  553.         //if (!isset($is_inside_querywindow) || !$is_inside_querywindow) echo "</li>\n";
  554.     }
  555. }
  556. echo "\n";
  557. ?>
  558.